package com.spsoft.vatoutinv.service.vmsepsInformation;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.spsoft.core.model.Result;
import com.spsoft.vatoutinv.entity.vmsepsInformation.VmsEpsInformation;
import com.spsoft.vatoutinv.model.dto.vmsepsInformation.VmsEpsCheckDto;
import com.spsoft.vatoutinv.model.dto.vmsepsInformation.VmsEpsClassifyCodePageDto;
import com.spsoft.vatoutinv.model.dto.vmsepsInformation.VmsEpsInformationDto;
import com.spsoft.vatoutinv.model.dto.vmsepsInformation.VmsEpsInformationQueryDto;
import com.spsoft.vatoutinv.model.vo.vmsclassifycode.VmsClassifyCodeForEpsPageVOList;
import com.spsoft.vatoutinv.model.vo.vmsepsInformation.VmsEpsInformationVo;
import com.spsoft.vatoutinv.model.vo.vmsepsInformation.VmsEpsUpdateInformationVo;


/**
 * @Author liwm
 * @Desc 企业商品及服务信息管理表;企业商品及服务信息管理表 SEQ_VMS_EPS_INFORMATION
 * Enterprise Product and Service Information Management(VmsEpsInformation)表服务接口
 * @Date 2024-01-08 13:24:31
 */
public interface VmsEpsInformationService extends IService<VmsEpsInformation> {

    /**
     * 分页查询
     */
    Result<IPage<VmsEpsInformationVo>> queryByPage(VmsEpsInformationQueryDto param);
    /**
     * 手工开票选择企业调用接口
     * @param param
     * @return
     */
    Result<IPage<VmsEpsInformationVo>> queryForHandleByPage(VmsEpsInformationQueryDto param);

    /**
     * 根据ID查详情
     */
    Result queryById(Long id);

    /**
     * 新增数据
     */
    Result insert(VmsEpsInformationDto params);

    /**
     * 修改数据
     */
    Result update(VmsEpsInformationDto vmsEpsInformation);


    VmsEpsInformation getInfoBySlv(String slv);

    /**
     * 根据税率、交易机构 查询寿险产品信息表数据
     * @param slv 税率
     * @param jyjg 交易机构
     * @return
     */
    VmsEpsInformation getInfoBySlvJyjg(String slv, String jyjg);

    /**
     * 获取税收分类编码页面数据
     * @param dto
     * @return
     */
    Result<IPage<VmsClassifyCodeForEpsPageVOList>> getClassCodePage(VmsEpsClassifyCodePageDto dto);

    /**
     * 验证商品服务编码接口是否有差额征税税率或者税收分类编码税率
     * @param param
     * @return
     */
    Result checkGstcmCode(VmsEpsCheckDto param);

    /**
     * 根据id删除数据
     * @param id
     * @return
     */
    Result deleteById(Long id);
}
